using SmartMathLibrary;

namespace SmartMathLibrary.NumericalIntegration
{
    /// <summary>
    /// Interface to implement a BivariateIntegral class.
    /// </summary>
    public interface IBivariateIntegral
    {
        /// <summary>
        /// Gets or sets the first dimension lower bound of the integral.
        /// </summary>
        /// <value>The first dimension lower bound of the integral.</value>
        double A1 { get; set; }

        /// <summary>
        /// Gets or sets the second dimension lower bound of the integral.
        /// </summary>
        /// <value>The second dimension lower bound of the integral.</value>
        double A2 { get; set; }

        /// <summary>
        /// Gets or sets the first dimension upper bound of the integral.
        /// </summary>
        /// <value>The first dimension upper bound of the integral.</value>
        double B1 { get; set; }

        /// <summary>
        /// Gets or sets the second dimension upper bound of the integral.
        /// </summary>
        /// <value>The second dimension upper bound of the integral.</value>
        double B2 { get; set; }

        /// <summary>
        /// Gets or sets the function of the integral.
        /// </summary>
        /// <value>The function of the integral.</value>
        IHardBivariateRealFunction Function { get; set; }
    }
}